1. Field of the Invention
The present invention relates to the field of computer data base processing. More specifically, the present invention relates to data formatting, data base updating, synchronization and reconciliation between a host or server computer and mobile data collection terminals.
2. The Background Art
Computer client/server systems have been designed which utilize a host computer and one or more mobile terminals. The host computer may be a mainframe computer, while the mobile terminals are usually hand held, less powerful portable computers. By using less powerful mobile terminals, it is possible to reduce the size and cost of each terminal. This can be accomplished by having systems which require the terminals to emulate more sophisticated desktop terminals and perform only specific tasks or processes required by the host computer.
One application such terminals are particularly suited for is data collection. Bar code symbols or other forms of data may be entered at a mobile terminal and then transferred to a host computer for processing or manipulation. There are many types of tasks that may be performed by mobile terminals, and data collection is only one example.
Additionally, data collection and other uses for mobile terminals may not necessarily be stationary tasks. Many times, the user inputting the data must move around in order to properly collect the data. For example, if a user wanted to perform inventory tasks, they may walk around a warehouse full of boxes to count and visually inspect each box. Then they would have to return to a fixed mobile terminal to input the data. It would be much more efficient if the user could bring the mobile terminal with him as he performed the inventory tasks and enter each piece of data as he receives it.
The advent of wireless technology and the miniaturization of the computer has allowed for palmtop or other small computers, running on a wireless network, to be used in data collection and other tasks. An example of such a device is disclosed in Herrod et. al., U.S. Pat. No. 5,604,516, hereby expressly incorporated by reference. The user may carry the mobile terminal around with him and input data as necessary.
A mobile computer network is depicted in FIG. 1. Host computer 10 may be connected to one or more mobile computer terminals 12, 14 through a wireless communications network. Communication may be accomplished using RF signals with the host computer connected in a local network along with stationary base stations (or “access points”) 16. The mobile computer terminals 12, 14 each have their own transmitter/receiver 18, 20, respectively, which communicate to and from the access points. The access points may be placed at various points around an area in which the mobile computer terminals can communicate with the host computer. For example, access points may be placed at various places around a warehouse if the mobile computer terminals are to be used for inventory tasks. When a mobile computer terminal 12 is in the range of one of the access points, connection and association may be established between the transmitter/receiver 18 of the mobile computer terminal 12 and the access point 16. However, if a mobile computer terminal 14 is out of range of one of the access point 16, connection and association between the transmitter/receiver 20 of the mobile computer and an access point 16 is not established. Examples of similar communications systems are disclosed in Tymes, U.S. Pat. No. 5,029,183, Tymes et al., U.S. Pat. No. 5,280,498, Heiman et al., U.S. Pat. No. 5,528,621, and Tymes, U.S. Pat. No. 5,668,803, all hereby expressly incorporated by reference.
In Tymes, U.S. Pat. No. 5,029,183, a packet data communication network is described where remote terminals may link to intermediate base stations through wireless RF communication wherein a packet is transmitted during a first time period and an acknowledge packet is received during a second time period occurring only at a selected time delay after the first time period. In Tymes et al., U.S. Pat. No. 5,280,498, a packet data communication network is described where remote terminals may link to intermediate base stations through wireless RF communication wherein a packet is transmitted during a first time period and an acknowledge packet is received during a second time period occurring only at a selected time delay after the first time period, with the acknowledge packet including a number sequence used to decode the packet. In Tymes, U.S. Pat. No. 5,668,803, a packet data communication network is described where remote terminals may link to intermediate base stations through wireless RF communication wherein a packet is transmitted during a first time period and an acknowledge packet is received during a second time period occurring only at a selected time delay after the first time period and a remote unit is alerted that a message is waiting to be picked up by including a message in an acknowledge packet. In Heiman et al., U.S. Pat. No. 5,528,621, a packet data communication network is described where remote terminals may link to intermediate base stations through wireless RF communication utilizing a frequency-hopping transmission method, with the base stations returning reply packets containing synchronization information. Communication may also be accomplished using other wireless communications technologies.
It is common to run an application on the host computer 10 that requires data be entered in a certain format or sequence, or more specifically, a form or template having certain data entry fields within the application fills a host database 22 with data collected on the mobile computer terminals. A problem arises, however, in that the data collected on the mobile computer terminals may not be in the proper format for simple insertion into data entry fields of the application running on the host computer. For example, an inventory database application program may currently be running on the host computer and that application may require that both an address field (in alphanumeric form) and a zip code (in numeric form) be filled for items in inventory. The data will eventually be stored in a host database 22. This data may be acquired by scanning bar code symbols off of each item in inventory. When the user scans the bar code symbols into the mobile computer terminal, the terminal may have no way of knowing in what order the application is requesting the data entry fields be filled (e.g. does he enter address then zip code or zip code then address?).
Additionally, the mobile computer terminal may not know what types of data to collect. In the above example, it may not know if it is supposed to accept address and zip code data, or address and phone number data.
In the past, these problems were remedied using one of two approaches. First, the mobile computer terminal could be set up in advance to accept only certain types of data, and only in a specific order. For example, the mobile computer terminal may be set up to receive only address and zip code information, and only in that order. This approach, however, limits the flexibility of the system in that once the mobile computer terminal is set up, it may be difficult or impossible to alter the input types. A problem occurs if the user suddenly decides that the name of the product should be entered as well, or that the zip code is no longer necessary.
The second approach to these problems is to run a special application or applications on the mobile computer terminal. This application could convert the data into the proper format, or alter the ordering of the received data to match that of the requirements of the application running on the host computer. This approach, however, uses up valuable processing power and memory space on the mobile computer terminal.
Another problem that arises in such wireless computer networks occurs when a user gets cut off from the network. The most common cause of this problem is when a user walks to a point that is out of range of the wireless transmitter/receivers or access points. However, this problem may also be encountered due to electromagnetic interference as well as other problems that may interfere with the wireless network.
These interruptions can cause serious problems in the case of wireless data collection. If the mobile computer terminal is used to collect data and transmit data to a host computer, and an interruption occurs, the mobile computer terminal may continue to transmit its information. This may result in the loss of information since the data transmitted during this interruption is never received by the host computer. This may cause drastic consequences. For example, if the host computer is running an inventory application, the data lost during the interruption causes the inventory count to be incorrect. Additionally, it may be difficult or impossible to determine at what point the interruption occurred or which data was being input at that time, so the entire inventory procedure may have to be restarted due to even a short interruption in the wireless network.
Another problem that potentially arises when a user gets cut off from the network occurs where data collected by the mobile terminal is time sensitive. For example, in a wireless computer network set up for a taxi service, each taxicab may periodically send information as to its location to a host computer for use in aiding in dispatching. Suppose connection with one of the taxicabs is broken at time t1, and the taxicab checks in with its location at time t2. Then at time t3, connection is re-established. The data sent to the host computer will represent the location of the taxicab at time t2, but the host computer will not know if the data it receives it receives represents the location of the taxi-cab at time t2 or t3. This may be referred to as a “data freshness” problem.
Another potential “data freshness” problem occurs in the case where the mobile data terminals may be sending data which “competes” with data from other mobile data terminals. An example of this is the case where the host computer maintains an inventory list of manufactured goods and the mobile computer terminals are used to make sales of those goods and reserve the goods for shipment. If there exist only ten manufactured units of a specific good (as tracked by the host computer database), and a first mobile computer terminal processes a sale for ten units of a specific good at time t1, while a second mobile computer terminal processes a sale for ten units for a specific good at time t2, then ideally, the customer from the sale on the first mobile computer terminal will have his goods shipped immediately, while the customer from the sale on the second mobile computer terminal will have his goods placed on backorder until more of the goods can be manufactured. However, if the first mobile computer terminal went out of range between t1 and t2, and connection was not re-established until after t2, then the wrong customer will have his goods backordered.